home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Games: Greatest Hits 1996
/
Amiga Games: Greatest Hits 1996.iso
/
userbox
/
publicdomain
/
famelibrary
/
include
/
libraries
/
fame.h
< prev
next >
Wrap
C/C++ Source or Header
|
1996-07-21
|
9KB
|
234 lines
#ifndef LIBRARIES_FAME_H
#define LIBRARIES_FAME_H TRUE
/*
**
** $VER: FAME.h 3.1
**
** Standard C definitions for FAME.library
**
** (C) Copyright 1996 BLOODROCK/tRSi/F-Innovation
** All Rights Reserved
**
*/
#ifndef EXEC_LIBRARIES_H
#include <exec/libraries.h>
#endif
#ifndef DOS_DOS_H
#include <dos/dos.h>
#endif
#define FAMENAME "FAME.library"
#define FAMEVERSION 3
/* FAME Object types */
#define FOBJ_FAMEDoorMsg 1
#define FOBJ_FAMEMailHeader 2
#define FOBJ_FAMEMailStat 3
#define FOBJ_FAMEToolPortMsg 4
#define FOBJ_FAMECoProcessPort 5
#define FOBJ_FAMEExternEditor 6
#define FOBJ_FAMEToolNotifyMsg 7
#define FOBJ_FAMEExpansion 8
#define FOBJ_FAMECnfExpansion 9
#define FOBJ_FAMEUser 10
#define FOBJ_FAMEUserKeys 11
#define FOBJ_FAMEUserConf 12
#define FOBJ_FAMECoProcess 13
#define FOBJ_FAMEDestNodes 14
#define FOBJ_FAMEInfoList 15
#define FOBJ_FAMEOnlineMsg 16
#define FOBJ_FAMEOLMString 17
/* FAMEAllocObject() error codes */
/* (Use DOS/IoErr() to get the error code. May also be ERROR_NO_FREE_STORE) */
#define FAOB_UnknownObject -1 /* Object type out of range */
/* Possible return codes from FAMEAvailExe() */
#define FAE_RESIDENT 3
#define FAE_RESIDENTSYS 2
#define FAE_LOADFILE 1
#define FAE_NOMATCH 0
#define FAE_DATAFILE -1
#define FAE_NOEBIT -2
#define FAE_DIRECTORY -3
#define FAE_ERROR -4
/* Flags for FAMENumToStr() and FAMENum64ToStr() */
/* Note: flags marked with "(-)" are not available for FAMENum64ToStr(). */
#define FNSF_HEX (1L<<0) /* (-) Output hex string */
#define FNSF_BIN (1L<<1) /* (-) Output binary string */
#define FNSF_WORD (1L<<2) /* (-) Output size WORD */
#define FNSF_BYTE (1L<<3) /* (-) Output size BYTE */
#define FNSF_LEADINGZEROES (1L<<4) /* (+) Output leading zeros */
#define FNSF_LEADINGSIGN (1L<<5) /* (+) Add leading numeric system sign */
#define FNSF_RIGHTFORMAT (1L<<6) /* (+) Right formatted output */
#define FNSF_LEFTFORMAT (1L<<7) /* (+) Left formatted output */
#define FNSF_CENTERFORMAT (1L<<8) /* (+) Center formatted output */
#define FNSF_TENDLEFT (1L<<9) /* (+) Left tendence center formatting */
#define FNSF_LOWERCASE (1L<<10) /* (-) Hex characters lowercase */
#define FNSF_GROUPING (1L<<11) /* (+) Separate digit groups */
#define FNSF_NUMLOCALE (1L<<12) /* (+) Use numeric Locale group separator */
#define FNSF_MONLOCALE (1L<<13) /* (+) Use monetary Locale group separator */
#define FNSF_SIGNED (1L<<14) /* (+) Handle value as signed number */
#define FNSF_PLUSSIGN (1L<<15) /* (+) Use "+" char for signed pos. values */
#define FNSF_SWAPSIGNS (1L<<16) /* (+) Swap "-/+/ " and "#/$/%" positions */
#define FNSB_HEX 0 /* (-) Output hex string */
#define FNSB_BIN 1 /* (-) Output binary string */
#define FNSB_WORD 2 /* (-) Output size WORD */
#define FNSB_BYTE 3 /* (-) Output size BYTE */
#define FNSB_LEADINGZEROES 4 /* (+) Output leading zeros */
#define FNSB_LEADINGSIGN 5 /* (+) Add leading numeric system sign */
#define FNSB_RIGHTFORMAT 6 /* (+) Right formatted output */
#define FNSB_LEFTFORMAT 7 /* (+) Left formatted output */
#define FNSB_CENTERFORMAT 8 /* (+) Center formatted output */
#define FNSB_TENDLEFT 9 /* (+) Left tendence center formatting */
#define FNSB_LOWERCASE 10 /* (-) Hex characters lowercase */
#define FNSB_GROUPING 11 /* (+) Separate digit groups */
#define FNSB_NUMLOCALE 12 /* (+) Use numeric Locale group separator */
#define FNSB_MONLOCALE 13 /* (+) Use monetary Locale group separator */
#define FNSB_SIGNED 14 /* (+) Handle value as signed number */
#define FNSB_PLUSSIGN 15 /* (+) Use "+" char for signed pos. values */
#define FNSB_SWAPSIGNS 16 /* (+) Swap "-/+/ " and "#/$/%" positions */
/* FAME DevInfoList structure */
struct FAMEDevInfoList {
APTR fdil_Next; /* next device */
char fdil_Name[32]; /* device name including ":" */
LONG fdil_DiskType; /* InfoData->DiskType */
LONG fdil_DiskState; /* InfoData->DiskState */
LONG fdil_Size; /* total size in bytes */
LONG fdil_BytesFree; /* free bytes */
};
/* FAMEExecuteDir() list (the result you get)
This list only contains programs which have been successfully started. */
struct FAMEExecuteDirList {
APTR fxdl_Next; /* next started program */
char fxdl_FileName[256]; /* name of the launched program */
ULONG fxdl_ReturnCode; /* the DOS ReturnCode of the program. */
}; /* If the SYS_Async Tag was specified, */
/* fxdl_ReturnCode is always NULL. */
/* FAMEFile structure returned by FAMELoadFile() */
struct FAMEFile {
APTR ffil_File; /* the file image itself */
BPTR ffil_FH; /* the file's FileHandle
(only valid if FLFF_KEEPFH was set) */
struct FileInfoBlock ffil_FIB; /* the file's FileInfoBlock */
};
/* FAMEPoolFile structure returned by FAMELoadFilePooled() */
struct FAMEPoolFile {
APTR fpof_Next; /* initialized to NULL, always ignored.
free to use by your program ! */
APTR fpof_Prev; /* initialized to NULL, always ignored.
free to use by your program ! */
APTR fpof_File; /* the file image itself */
BPTR fpof_FH; /* the file's FileHandle
(only valid if FLFF_KEEPFH was set) */
struct FileInfoBlock fpof_FIB; /* the file's FileInfoBlock */
};
/* FAMEDosMove() flags */
#define FDMF_NODELETE (1l<<0) /* copy instead moving */
#define FDMF_KEEPDATA (1l<<1) /* keep comment & protection bits */
/* (except the archive bit) */
#define FDMB_NODELETE 0 /* copy instead moving */
#define FDMB_KEEPDATA 1 /* keep comment & protection bits */
/* (except the archive bit) */
/* FAMELoadFile() and FAMELoadFilePooled() flags */
#define FLFF_KEEPFH (1L<<0) /* don't close the file */
#define FLFB_KEEPFH 0 /* don't close the file */
/* FAMEPostFile() flags */
#define FPFF_NODELETE (1L<<0) /* don't delete source file anyway */
#define FPFF_REPLACE (1L<<1) /* delete/replace existing file(s) */
#define FPFF_CHECKONLY (1L<<2) /* Only test if the file already exists */
#define FPFF_KEEPDATA (1L<<3) /* Keep source file comment and protection */
/* bits (except A,R,D) */
#define FPFB_NODELETE 0 /* don't delete source file anyway */
#define FPFB_REPLACE 1 /* always Post file */
#define FPFB_CHECKONLY 2 /* Only test if the file already exists */
#define FPFB_KEEPDATA 3 /* Keep source file comment and protection */
/* bits (except A,R,D) */
/* FAMEUlPathList structure */
struct FAMEUlPathList {
APTR fupl_Next; /* Ptr. to next UploadPathList entry */
APTR fupl_Prev; /* Ptr. to previous UploadPathList entry */
char fupl_Path[102]; /* full path name */
ULONG fupl_Internal; /* FAME.library internal; do not use! */
};
/* Library base */
/* Fields declared as private ARE private. Do not use 'em. They contain
some internal data structures which don't contain anything you may
use to hack the BBS. It isn't useful for you anyway. Some BBS
functions give you informations from these data fields, if your
program may have use of it. So do not ever read these fields.
Also, *never* write anything to the library base. */
struct FAMELibrary {
struct Library LibNode; /* Standard library node */
/* LIBRARY PRIVATE */
UBYTE FAME_Flags; /* see also: */
UBYTE FAME_pad; /* "sample.library.asm", documented in the */
BPTR FAME_SegList; /* Amiga ROM Kernel Reference Manual: Libraries */
/* PUBLIC FIELDS */ /* may be READ from your program */
APTR FAME_DOSBase; /* dos.library base V37 */
APTR FAME_SysBase; /* exec base for faster access */
APTR FAME_LocaleBase; /* locale.library V38 base address */
/* LIBRARY PRIVATE */
LONG FAME_Private2;
BYTE FAME_Private3[50];
WORD FAME_Private4;
BYTE FAME_Private5[40];
/* PUBLIC FIELDS */
APTR FAME_TimerBase; /* timer.device library base */
APTR FAME_IconBase; /* icon.library V37 base address */
};
#endif /* LIBRARIES_FAME_H */